package com.developer.web.content.publicpage.indicadores;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.developer.core.page.PublicPage;
import com.developer.core.utils.ObjectToXML;
import com.developer.persistence.modulo.indicadores.ControllerIndicadores;
import com.developer.persistence.modulo.indicadores.mapper.dto.Indicador;
import com.developer.persistence.modulo.indicadores.mapper.dto.ListaIndicador;
import com.developer.web.general.Constantes;

public class PageIndicador extends PublicPage {

	@Override
	public String getNextPage() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public StringBuffer executeAction(HttpServletRequest request) {

		ControllerIndicadores controllerIndicadores = ControllerIndicadores.getInstance();
		
		StringBuffer xmlPage = new StringBuffer();
		ObjectToXML objectToXML = ObjectToXML.getInstance();
		
		
		Map<String, Object> parameters = getParameters(request, true);
		Indicador indicador = (Indicador) getParameterToObject("Indicador",
				Indicador.class, null, parameters);
		
		if (indicador != null) {
			
			if (parameters.containsKey("save")) {

				if (parameters.containsKey("edit")) {
					indicador.setEmp_codigo(Constantes.EMP_CODIGO);
				}

				Boolean guardado = controllerIndicadores.guardarIndicador(indicador);
				xmlPage.append("<guardado>" + guardado +"</guardado>");
				xmlPage.append("<edit>" + true +"</edit>");
			}
			if (parameters.containsKey("edit")) {
				indicador = controllerIndicadores.obtenerIndicador(indicador);
				xmlPage.append("<edit>" + true +"</edit>");
			}
			
		}
		
		
		
		
		List<ListaIndicador> areas = controllerIndicadores.obtenerAreasClaveResultados();
		
		List<ListaIndicador> tipos = controllerIndicadores.obtenerTiposIndicador();
		
		List<ListaIndicador> unidades = controllerIndicadores.obtenerUnidadesMedida();
		
		List<ListaIndicador> periodos  = controllerIndicadores.obtenerPeriodos();
		
		List<ListaIndicador> formulas  = controllerIndicadores.obtenerFormulas();
		
		List<ListaIndicador> acumula  = controllerIndicadores.obtenerListaAcumula();

		if (indicador != null) {
			xmlPage.append("<indicador>" + objectToXML.getXML(indicador) +"</indicador>");
		}
		xmlPage.append("<areas>" + objectToXML.getXML(areas) +"</areas>");
		xmlPage.append("<tipos>" + objectToXML.getXML(tipos) +"</tipos>");
		xmlPage.append("<unidades>" + objectToXML.getXML(unidades) +"</unidades>");
		xmlPage.append("<periodos>" + objectToXML.getXML(periodos) +"</periodos>");
		xmlPage.append("<formulas>" + objectToXML.getXML(formulas) +"</formulas>");
		xmlPage.append("<acumula>" + objectToXML.getXML(acumula) +"</acumula>");
		
		return xmlPage;

	}

	@Override
	public boolean isAccesoValido(HttpServletRequest arg0) {
		return true;
	}

}
